{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 2.2.1  开发密钥指南"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "1. 获取开发密钥\n",
    "在开始使用OpenAI的API之前，你需要先注册一个OpenAI账户并获取API密钥。以下是获取密钥的步骤：访问OpenAI官方网站。如果你还没有账户，点击“注册”并按照提示完成注册过程。登录你的账户，然后转到“我的”、“API Keys”部分。你可以看到你的API密钥或有一个加号选项来生成新的密钥。复制密钥并保存在一个安全的地方。确保不要与他人分享或公开你的密钥。\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "2. 三种使用密钥的方法\n",
    "方法1：直接硬编码写在代码中。这是最直接的方法，但也是最不安全的。你可以直接在代码中提供密钥，如下所示：\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "方法1：直接硬编码写在代码中。这是最直接的方法，但也是最不安全的。你可以直接在代码中提供密钥，如下所示："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 硬编码传参方式\n",
    "openai_api_key=\"填入你的OpenAI密钥\"\n",
    "from langchain.llms import OpenAI\n",
    "llm = OpenAI(openai_api_key = openai_api_key)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 或者引入os模块后，硬编码设置os的环境变量，简单地使用llm = OpenAI()来初始化类\n",
    "import os\n",
    "os.environ[\"OPENAI_API_KEY\"] = \"填入你的OpenAI密钥\"\n",
    "llm = OpenAI()\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "方法2：使用环境变量。这是一种更安全的方法，你可以将密钥保存为环境变量，然后在代码中使用它，在你的本地环境或服务器上设置环境变量。例如，在Linux或Mac上，你可以在命令行中执行： "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "export OPENAI_API_KEY=\"填入你的OpenAI密钥\""
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "from langchain.llms import OpenAI\n",
    "llm = OpenAI()\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "方法3：使用getpass模块。这是一种交互式的方法，允许用户在运行代码时输入密钥，你可以简单地使用llm = OpenAI()来初始化类。如下所示："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "import os\n",
    "import getpass\n",
    "\n",
    "os.environ['OPENAI_API_KEY'] = getpass.getpass('OpenAI API Key:')\n",
    "\n",
    "from langchain.llms import OpenAI\n",
    "llm = OpenAI()\n"
   ]
  }
 ],
 "metadata": {
  "language_info": {
   "name": "python"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
